home *** CD-ROM | disk | FTP | other *** search
- /*
- ** $VER: events.e V0.9B
- **
- ** (C) Copyright 1996-1997 DreamWorld Productions.
- ** All Rights Reserved.
- **
- */
-
- OPT MODULE
- OPT EXPORT
- OPT PREPROCESS
-
- MODULE 'dpkernel/dpkernel','system/register','system/tasks'
-
- /*****************************************************************************
- ** The Event Node.
- */
-
- CONST TAGS_EVENT = $FFFB0000 OR ID_EVENT
-
- OBJECT event
- next :PTR TO event /* [00] Next event node */
- prev :PTR TO event /* [04] Previous event node */
- routine :LONG /* [08] Function call! */
- args :PTR TO LONG /* [12] Event arguments */
- priority :INT /* [16] Sets position in the event chain */
- number :INT /* [18] Event number */
- flags :LONG /* [20] Special flags */
- task :PTR TO dpktask /* [24] Task owner */
- ENDOBJECT
-
- OBJECT evtentry
- event :PTR TO event
- routine :LONG
- ENDOBJECT
-
- /* Event Structure Tags */
-
- CONST EVA_Routine = TAPTR OR 8,
- EVA_Args = TAPTR OR 12,
- EVA_Priority = TWORD OR 16,
- EVA_Number = TWORD OR 18,
- EVA_Flags = TLONG OR 20
-
- /* Event->Flags */
-
- CONST EVF_ON = $00000001, /* Call routine on event (default) */
- EVF_AFTER = $00000002, /* Call routine after event */
- EVF_UNTRACKED = $00000004, /* Do not track the event node */
- EVF_GLOBAL = $00000008, /* Always call if event occurs (default) */
- EVF_TASK = $00000010 /* Call if I am the active task */
-
- /* Return flags for Event->Routine() and CallEventList() */
-
- CONST EVR_BREAK = $00000001, /* Do not execute any more events */
- EVR_FAIL = $00000002 /* Return immediately (failure) */
-
- /*****************************************************************************
- ** Available event types.
- */
-
- CONST EVTNODE = 0,
- EVTCALL = $80000000
-
- CONST EVT_OnNewTask = 1 OR EVTNODE, /* A new task is appearing */
- EVT_OnRemTask = 2 OR EVTNODE, /* An existing task is being removed */
- EVT_ab = 3 OR EVTNODE, /* */
- EVT_ac = 4 OR EVTNODE, /* */
- EVT_ad = 5 OR EVTNODE, /* Args: <TimesPerSecond> */
- EVT_ae = 6 OR EVTNODE, /* Args: <Task> */
- EVT_af = 7 OR EVTNODE, /* Args: <Task> */
- EVT_Timer = 8 OR EVTCALL, /* Args: <MicroSeconds> */
- EVT_DiskInsert = 9 OR EVTNODE, /* Args: <None> */
- EVT_DiskRemove = 10 OR EVTNODE, /* Args: <None> */
- EVT_SelfDestruct = 11 OR EVTNODE, /* Args: <Task> */
- EVT_OnDisplay = 12 OR EVTNODE, /* Args: <Task> */
- EVT_Expunge = 13 OR EVTNODE, /* Args: <None> */
- EVT_LowMemory = 14 OR EVTNODE, /* Args: <PercentageLeft> */
- EVT_PlaySound = 15 OR EVTCALL, /* Args: <Task/Object> */
-
- EVT_END = 200 /* Maximum amount of events for this version */
-